Conventionally, a processing pipeline of a graphics processing unit is configured using states that are broadcast to the processing pipeline. FIG. 1 illustrates how a processing pipeline 130 is configured using states that are broadcast. A register 110 receives data 101 to be processed by the processing pipeline 130 along with a state command. The data to be processed are passed to the processing pipeline 130 and the state command is detected by a state decoder 120, which decodes it to generate states for configuring the processing pipeline 130. The states are then broadcast to the individual stages of the processing pipeline 130 and used to configure them.
When a change in the configuration of the processing pipeline 130 is desired, new states are broadcast by the state decoder 120 to the individual stages of the processing pipeline. However, before the configuration of the processing pipeline 130 can be changed, the processing pipeline 130 must finish processing all of the data it received from the register 110, i.e., the processing pipeline 130 needs to be flushed. The time taken to flush the processing pipeline 130 can be as long as the processing latency of the processing pipeline 130 and introduces unwanted delay, especially in the case of a very deep processing pipeline with many stages. As a result, configuration changes in such a processing pipeline are generally kept to a minimum.